package reflect;

import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.Arrays;

/**
 * 获取方法相关信息
 */
public class ReflectDemo6 {


    public static void main(String[] args) throws Exception {
        Class cls=Class.forName("reflect.Person");
        Method method = cls.getMethod("say",String.class,int.class);

        String name = method.getName();//获取方法名
        System.out.println("方法名:"+name);

        Class returnType= method.getReturnType();//获取方法返回值类型
        System.out.println("该方法的返回值类型为:"+returnType);

        int count = method.getParameterCount();//获取方法参数个数
        System.out.println("该方法有"+count+"个参数");

        Class[] parameterTypes =method.getParameterTypes();
        System.out.println("参数类型:"+Arrays.toString(parameterTypes));

        int modifiers = method.getModifiers();
        switch (modifiers){
            case Modifier.PUBLIC:
                System.out.println("是一个public方法");
                break;
            case Modifier.PRIVATE:
                System.out.println("是一个private方法");
                break;
            case Modifier.PROTECTED:
                System.out.println("是一个protect方法");
                break;
            default:
                System.out.println("是一个default方法");


        }
    }
}
